<?php
namespace Home\Controller;
use Think\Controller;
/*
导航树，根据当前用户是否有某个树节点的权限来决定是否显示改节点
特别说明一点，有些节点是所有用户都有的，总是要取出来，所以在menu表的rule字段设置了Public
那么这里取值时，Public的节点一定要取出来显示

由于任何用户都需要显示导航树，所以这里不需要继承Common控制器
*/

class MenuController extends Controller {
   public function menu(){
    // 所有树节点
       $res = M('menu')->select();

      // var_dump($this->auth);die;
       $auth = new \Think\Auth();

        foreach ($res as $key) {
          if($res[$key]['pid'] == $res[$k]['id']){
          unset($res[$key]);
          }
        }
        
       // 验证用户拥有的规则
       // 第一个参数是规则名称,第二个参数是用户UID
       if(!$auth->check('admin',session('id'))){ 
          foreach ($res as $k => $v) {
            if ($v['rule'] != 'public') {
              if(!$auth->check($v['rule'], session('id'))){//controller
                unset($res[$k]);                
              }
            }  

              // if(!$auth->check($v['controller'], session('id'))){//controller
              //   unset($res[$k]);
              //   foreach ($res as $key) {
              //     if($res[$key]['pid'] == $res[$k]['id']){
              //     unset($res[$key]);
              //     }
              //   }
              // }

          }
          // foreach ($res as $k => $v) {
          //     if (!$v['action']) continue;

          //     // 第一个参数是规则名称,第二个参数是用户UID
          //    if(!$auth->check($v['action'],session('id'))) unset($res[$k]);
          // }
       }
       foreach ($res as $k => $v) {
           $res[$k]['text'] = $v['name'];
       }
       import("Home.Util.Unlimited");
       // $unlimited = A('Common/Unlimited');
       $data = \Unlimited::unlimitedMore($res, 'children', 0);
       
       $data = \Unlimited::leaf($data, 'children');
       
       $this->ajaxReturn($data);
   } 
}